package com.huashi.dealer.modular.business.upload.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.huashi.dealer.commonEntity.UploadFile;
import com.huashi.dealer.modular.business.upload.param.UploadResponseParam;
import org.springframework.web.multipart.MultipartFile;

/**
 * API上传Service接口
 *
 * @author 谭陈强
 * @since 2025-07-30
 */
public interface UploadService extends IService<UploadFile> {

    /**
     * 上传图片
     *
     * @param file 图片文件
     * @return 上传结果
     */
    UploadFile uploadImage(MultipartFile file);

    /**
     * 上传文件
     *
     * @param file 文件
     * @return 上传结果
     */
    UploadResponseParam uploadFile(MultipartFile file);

    /**
     * 批量上传图片
     *
     * @param files 图片文件数组
     * @param token 用户令牌
     * @param wxappId 小程序ID
     * @return 上传结果
     */
    UploadResponseParam uploadImages(MultipartFile[] files, String token, Long wxappId);

    /**
     * 删除文件
     *
     * @param fileId 文件ID
     */
    void deleteFile(Long fileId);

    /**
     * 获取文件信息
     *
     * @param fileId 文件ID
     * @param token 用户令牌
     * @return 文件信息
     */
    UploadResponseParam getFileInfo(String fileId, String token);

    /**
     * 检查文件是否存在
     *
     * @param filePath 文件路径
     * @param token 用户令牌
     * @return 检查结果
     */
    UploadResponseParam checkFile(String filePath, String token);
} 